package com.example.w.common.pojo;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import com.example.w.common.util.Utils;
import lombok.Data;

/**
 * menu_item
 * @author
 */
@Data
public class MenuItem implements Serializable {
    /**
     * 菜品id
     */
    private Long id;

    /**
     * 菜品名称
     */
    private String menuItemName;

    /**
     * 菜品类别
     */
    private TypeNum type;

    /**
     * 原料/描述
     */
    private String material;

    /**
     * 菜品价位
     */
    private BigDecimal price;

    /**
     * 折扣
     */
    private Double discount;

    /**
     * 菜品状态：0(售罄), 1(可点餐)
     */
    private Integer status;

    /**
     * 检查菜品添加信息是否完整或是否符合规范，主要检查名称，类型，价格
     */
    public boolean checkAdditionInfoComplete(){
        BigDecimal b = null, d = null;
        boolean priceCorrect = false;
        if (price != null) {
            b = price.setScale(2, BigDecimal.ROUND_DOWN);
            d = new BigDecimal("0.00");
            priceCorrect = b.doubleValue() > d.doubleValue();
        }
        return !Utils.isEmpty(menuItemName)
                && type != null
                && priceCorrect;
    }
    /*
     *判断这是否是一个套餐
     */
    public boolean isCombo() {
        return TypeNum.COMBO.equals(this.type);
    }

    /**
     * 判断是否未下架
     */
    public boolean isAvailable() {
        return status != 0;
    }

    private Map<TypeNum, List<MenuItem>> comboContent;

    private static final long serialVersionUID = 1L;
}